<?php
// +----------------------------------------------------------------------
// | quanli team
// +----------------------------------------------------------------------
// | Copyright (c) 2013-2020 http://www.fistforward.com/ All rights reserved.
// +----------------------------------------------------------------------
// | create by allen.qiang
// +----------------------------------------------------------------------

/**
 * 支付方式ajax类
 * @package  ajax/backend/system
 * @author allen.qiang
 */

quanli_require('module/base/system/sysPayment.class.php');

class ajax_payType {

	public function execute() {

        if (isset($_REQUEST['operFlg']) && is_numeric($_REQUEST['operFlg']) && $_REQUEST['operFlg'] > 0) {

            switch ($_REQUEST['operFlg']) {

                case 1://支付方式列表
                    $this->payTypeList();
                    break;

                case 2: //查询支付方式详情
                    $this->searchPayTypeDetail();
                    break;

                case 3://查询货到付款 -- 付款方式
                    $this->searchPayWayList();
                    break;

                case 4: //查询在线支付参数
                    $this->searchOnlinepPrameter();
                    break;

                case 5: //付款方式列表
                    $this->paymentMethodList();
                    break;

                case 6: //查询付款方式详情
                    $this->searchPaymentMethodDetail();
                    break;

                case 100:

                    if (!isset($_REQUEST['act']) || !in_array($_REQUEST['act'], array('del', 'edit', 'change', 'm_del', 'm_edit', 'o_edit'))) {
                        returnJsonData('参数错误');
                    }

                    if ($_REQUEST['act'] == 'edit') {

                        $this->editPayType(); //新增、修改支付方式

                    } else if ($_REQUEST['act'] == 'del') {

                        $this->deletePayType(); //删除支付方式

                    } else if ($_REQUEST['act'] == 'change') {

                        $this->changePayTypeUseFlg(); //支付方式启用/禁用

                    } else if ($_REQUEST['act'] == 'm_edit') {

                        $this->editPayWay(); //新增、修改付款方式

                    } else if ($_REQUEST['act'] == 'm_del') {

                        $this->deletePayWay(); //删除付款方式

                    } else if ($_REQUEST['act'] == 'o_edit') {

                        $this->editOnline(); //保存在线支付方式参数

                    }

                    break;

                default:
                    returnJsonData('参数错误');
                    break;

            }

        } else {

            returnJsonData('参数错误');

        }


	}

    /**
     * 查询在线支付参数
     */
    private function searchOnlinepPrameter() {

        //实例支付方式类
        $sysPayment = new sysPayment();

        //查询在线支付参数
        $online_parameter_array = $sysPayment->searchOnlinepPrameter( $_REQUEST['payTypeID'] );

        if ($online_parameter_array) {
            returnJsonData('ok', 200, $online_parameter_array);
        } else {
            returnJsonData('在线支付参数信息没有找到', 404);
        }

    }


    /**
     *
     * 付款方式列表
     */
    private function paymentMethodList(){

        global $G_PGLOB;

        //实例支付方式类
        $sysPayment = new sysPayment();


        $arg_array = $_REQUEST;

        //查询付款方式
        $pay_way_array = $sysPayment->searchPaymentMethod( $arg_array );

        //组织返回的数据
        $result_array = array(
            'page' => $arg_array['page'],
            'total' => $arg_array['count'],
            'rows' => array()
        );

        if ($pay_way_array) {

            foreach($pay_way_array as &$pay) {

                $operation_html = '<a href="javascript:void(0);" onclick="pays.edit.open(' . $pay['id'] . ');">修改</a>&nbsp;';

                //付款方式类型
                $type = '';
                if( $pay['type'] == 1){
                    $type = '现金';
                }else if($pay['type'] == 2){
                    $type = '刷卡';
                }else if($pay['type'] == 3){
                    $type = '信用卡';
                }
                $result_array['rows'][] = array (
                    'id' => $pay['id'],
                    'cell' => array(
                        $operation_html,
                        $pay['payTypeID'],
                        $pay['name'],
                        $type,
                        $pay['is_invoice'] == 1 ? '是' : '<font color="red">否</font>',
                    )
                );

            }

        }


        echo json_encode($result_array);

    }
    /**
     * 查询支付方式详情
     */
    private function searchPayTypeDetail() {

        if (!isset($_REQUEST['id']) || !quanli_is_int($_REQUEST['id'])) {
            returnJsonData('参数错误');
        }

        //实例支付方式类
        $sysPayment = new sysPayment();

        //查询支付方式
        $arg_array = array(
            'payTypeID' => $_REQUEST['id']
        );
        $pay_type_array = $sysPayment->searchPayType( $arg_array );

        if ($pay_type_array) {
            returnJsonData('ok', 200, $pay_type_array[0]);
        } else {
            returnJsonData('支付方式信息没有找到', 404);
        }

    }

    /**
     * 支付方式列表
     */
    private function payTypeList () {

		global $G_PGLOB;

        //实例支付方式类
        $sysPayment = new sysPayment();

        //查询支付方式
        $arg_array = $_REQUEST;
        $pay_type_array = $sysPayment->searchPayType( $arg_array );

        //组织返回的数据
        $result_array = array(
            'page' => $arg_array['page'],
            'total' => $arg_array['count'],
            'rows' => array()
        );

        if ($pay_type_array) {

            $edit_permission = $G_PGLOB->has_permission(10);

            foreach($pay_type_array as &$pay) {

                if ($edit_permission) {

                    $operation_html = '';
                    if ($pay['is_default'] == 0) {
                        $operation_html .= '<a href="javascript:void(0);" onclick="pay.edit.open(' . $pay['payTypeID'] . ');">修改</a>&nbsp;';
                    }
                    if ($pay['type'] == 1) {
                        $operation_html .= '<a href="javascript:void(0);" onclick="paymentMethod.list.open(' . $pay['payTypeID'] . ');">付款方式</a>';
                    } else if ($pay['type'] == 2) {
                        $operation_html .= '<a href="javascript:void(0);" onclick="online.edit.open(' . $pay['payTypeID'] . ');">参数设置</a>';
                    }


                    $use_html = '';
                    if ($pay['useFlg']) {
                        $use_html .= '<a href="javascript:void(0);" onclick="pay.change.open(' . $pay['payTypeID'] . ', ' . $pay['useFlg'] . ');">启用</a>';
                    } else {
                        $use_html .= '<a href="javascript:void(0);" onclick="pay.change.open(' . $pay['payTypeID'] . ', ' . $pay['useFlg'] . ');">禁用</a>';
                    }

                    $result_array['rows'][] = array (
                        'id' => $pay['payTypeID'],
                        'cell' => array(
                            $operation_html,
                            $pay['payTypeID'],
                            $pay['payTypeName'],
                            $pay['memo'],
                            $pay['type_name'],
                            $pay['web_usable'] == 1 ? '是' : '<font color="red">否</font>',
                            $pay['wap_usable'] == 1 ? '是' : '<font color="red">否</font>',
                            $pay['wx_usable'] == 1 ? '是' : '<font color="red">否</font>',
                            $pay['app_usable'] == 1 ? '是' : '<font color="red">否</font>',
                            $pay['backend_usable'] == 1 ? '是' : '<font color="red">否</font>',
                            $use_html,
                            $pay['is_default'] == 1 ? '是' : '<font color="red">否</font>'
                        )
                    );

                } else {

                    $operation_html = '';
                    if ($pay['type'] == 1) {
                        $operation_html .= '<a href="javascript:void(0);" onclick="paymentMethod.list.open(' . $pay['payTypeID'] . ');">付款方式</a>';
                    } else if ($pay['type'] == 2) {
                        $operation_html .= '<a href="javascript:void(0);" onclick="online.edit.open(' . $pay['payTypeID'] . ');">参数设置</a>';
                    }

                    $result_array['rows'][] = array (
                        'id' => $pay['payTypeID'],
                        'cell' => array(
                            $operation_html,
                            $pay['payTypeID'],
                            $pay['payTypeName'],
                            $pay['memo'],
                            $pay['type_name'],
                            $pay['web_usable'] == 1 ? '是' : '<font color="red">否</font>',
                            $pay['wap_usable'] == 1 ? '是' : '<font color="red">否</font>',
                            $pay['wx_usable'] == 1 ? '是' : '<font color="red">否</font>',
                            $pay['app_usable'] == 1 ? '是' : '<font color="red">否</font>',
                            $pay['backend_usable'] == 1 ? '是' : '<font color="red">否</font>',
                            $pay['useFlg'] == 1 ? '启用' : '禁用',
                            $pay['is_default'] == 1 ? '是' : '<font color="red">否</font>'

                        )
                    );

                }

            }

        }


		echo json_encode($result_array);

	}

    /**
     * 新增或修改支付方式
     */
    private function editPayType () {

		global $G_PGLOB;

        //实例支付方式类
		$sysPayment = new sysPayment();

        //新增或修改支付方式
        $_REQUEST['operator'] = $G_PGLOB->currentUserID;
		$result_array = $sysPayment->editPayType( $_REQUEST );

        returnJsonData($result_array['message'], $result_array['code']);

	}

    /**
     * 删除支付方式
     */
    private function deletePayType (){

        //实例支付方式类
        $sysPayment = new sysPayment();

        //批量删除支付方式
        $result_array = $sysPayment->deletePayType( $_REQUEST['p_array'] );

        returnJsonData( $result_array['message'], $result_array['code'] );

    }

    /**
     * 支付方式启用/禁用
     */
    private function changePayTypeUseFlg () {

        //实例支付方式类
        $sysPayment = new sysPayment();

        //启用、禁用支付方式
        $result_array = $sysPayment->changePayType( $_REQUEST['payTypeID'] );

        returnJsonData( $result_array['message'], $result_array['code'] );

    }


    /**
     * 查询货到付款 -- 付款方式
     */
    private function searchPayWayList () {

		global $G_PGLOB;

        //实例支付方式类
        $sysPayment = new sysPayment();
		
        //查询付款方式
        $pay_way_array = $sysPayment->searchPaymentMethod( $_REQUEST );


		if ($pay_way_array) {

            returnJsonData('ok', 200, $pay_way_array[0]);

        } else {

            returnJsonData('付款方式信息没有找到', 404);

        }
		
	}

    /**
     * 新增、修改付款方式
     */
    private function editPayWay () {

		global $G_PGLOB;

        //实例支付方式类
        $sysPayment = new sysPayment();


        //新增、修改付款方式
        $_REQUEST['operator'] = $G_PGLOB->currentUserID;
		$result_array = $sysPayment->editPayWay( $_REQUEST );

        returnJsonData( $result_array['message'], $result_array['code'] );

	}

    //删除付款方式
    private function deletePayWay () {

        //实例支付方式类
        $sysPayment = new sysPayment();

        $result_array = $sysPayment->deletePayWay( $_REQUEST['p_array'] );

        returnJsonData( $result_array['message'], $result_array['code'] );

    }


    /**
     * 保存在线支付参数
     */
    private function editOnline () {

		global $G_PGLOB;

        //实例支付方式类
        $sysPayment = new sysPayment();

        $_REQUEST['operator'] = $G_PGLOB->currentUserID;
		$result_array = $sysPayment->editOnline( $_REQUEST );

        returnJsonData( $result_array['message'], $result_array['code'] );

	}

}